Capítulo 1 Escala
1.1 Apresentação
Nesta capitulo vamos entender a importância de escala na ecologia da paisagem através cálculos com a proporção de floresta. Durante o capitulo você aprenderá a
- Alterar escala (resolução e extensão espacial),
- Calcular a área de uma classe de habitat,
- Desenvolve uma comparação multiescala.
É muito importante ficar claro para você o que é escala (e o que não é!), e qual a importância desse conceito na elaboração do desenho amostral, na coleta de dados, nas análises e na tomada de decisão. Nesse tutorial usaremos conteudo baseado no Capítulo 2 do livro Spatial Ecology and Conservation Modeling (Fletcher and Fortin 2018) e “Tutorial Escala” do Dr. Alexandre Martensen.
1.2 Escala: breve definação
Todos os processos e padrões ecológicos têm uma dimensão temporal e espacial. Assim sendo, o conceito de escala não somente representar essas dimensões, mas também, ajudar nos apresentá-los de uma forma que facilite o entendimento sobre os processos e padrões sendo estudados.
Na ecologia o termo escala refere-se à dimensão ou domínio espaço-temporal de um processo ou padrão. Na ecologia da paisagem, a escala é frequentemente descrita por sua componentes: resolução e extensão.
- Resolução: menor unidade espacial de medida para um padrão ou processo.
- Extensão: descreve o comprimento ou tamanho de área sob investigação.
Resolução e extensão tendem a covariar – estudos com maior extensão tendem a ter resolução maiores também. Parte dessa covariância é prática: é difícil trabalhar em grandes extensões com dados coletados em tamanhos de resolução finos. No entanto, parte dessa covariância também é conceitual: muitas vezes em grandes extensões, podemos esperar que processos operando em resolução muito finos forneçam somente “ruído” e não dados/informações relevantes sobre os sistemas. Como os desafios computacionais diminuíram e a disponibilidade de dados de alta resolução aumentou, a covariância entre resolução e extensão nas investigações diminuiu.
Lembrando, na primeira aula, vimos que a escala espacial pode ser interpretada com base em três dimensoes:
- no fenômeno de interesse;
- na amostragem que ocorre;
e/ou
- na análise
Para que a Ecologia da Paisagem gere evidências científicas robustas e úteis, a escala nas três dimensões deve ser consistente e apropriada para o estudo. Aqui nos concentramos na dimensão “análise”, e aprendemos como a escala espacial pode ser alterada e representada em modelos ecológicos.
1.3 Pacotes e dados
Em geral é necessário baixar alguns pacotes para que possamos fazer as nossas análises. Neste caso precisamos os seguintes pacotes, que deve esta instalado antes:
1.3.1 Pacotes
No R, carregar os pacotes necessarios com o codigo:
Caso os pacotes não tenham sido instalados, o R vai avisar atraves um mensagem tipo: Error in library(nomepacote) : there is no package called ‘nomepacote’. Neste caso, para instalá-los consulte o capitulos aqui Capitulo 4 instalação de pacotes e aqui Capitulo 4 pacotes .
1.3.2 Dados
Vamos olhar um exemplo do mundo real. Uma pequena amostra do Rio Araguari, perto de Porto Grande. O ponto central é de longitude: -51.406312 latitude: 0.726236. Para visualizar o ponto no Google Earth: https://earthengine.google.com/timelapse#v=0.72154,-51.41543,11.8,latLng&t=2.24&ps=25&bt=19840101&et=20201231&startDwell=0&endDwell=0 .
Vammos trabalhar com os dados de MapBiomas, que produz mapeamento anual da cobertura e uso da terra no Brasil desde 1985. Os dados de MapBiomas vem no formato de raster, que tem uma classificação da terra feito a partir da classificação pixel a pixel de imagens das satélites Landsat. Todo processo é feito com algoritmos de aprendizagem de máquina (machine learning) através da plataforma Google Earth Engine, que oferece imensa capacidade de processamento na nuvem. Mais detalhes sobre a metodologia aqui: Metodologia MapBiomas.
Para carregar um arquivo raster trabalhamos com o pacote terra. O pacote tem varios funçoes para a análise e modelagem de dados geográficos. Nós podemos ler os dados de cobertura da terra no arquivo “.tif” com a função rast.
# arquivo no pacote "eprdados"
arquivo <- system.file("raster/amostra_mapbiomas_2020.tif",
package = "eprdados")
# carregar
ramostra <- rast(arquivo)Plotar para verificar.
Figura 1.1: Mapbiomas 2020. Uma pequena amostra do Rio Araguari, perto de Porto Grande.
Podemos também verificar informações sobre o raster (metadados) rodando o nome do objeto:
## class : SpatRaster
## dimensions : 8, 9, 1 (nrow, ncol, nlyr)
## resolution : 29.89281, 29.89281 (x, y)
## extent : 454659.8, 454928.9, 80160.06, 80399.2 (xmin, xmax, ymin, ymax)
## coord. ref. : SIRGAS 2000 / UTM zone 22N (EPSG:31976)
## source : amostra_mapbiomas_2020.tif
## name : mapbiomas_2020
## min value : 3
## max value : 33
Isso nos mostra informações sobre escala espacial (resolução e extensão) e a sistema de coordenadas (SIRGAS 2000 / UTM zone 22N , EPSG:31976). Além disso é possível obter informações específicas através de funções específicas.
# Obter informações sobre escala espacial
# resolução, comprimento e largura do pixel em metros
res(ramostra)
# numero de colunas
ncol(ramostra)
# numero de linhas
nrow(ramostra)1.3.2.1 Pergunta 1
Com base nos resultados obtidos até agora em relação ao objeto raster ramostra, qual o área do pixel em metros quadrados? Qual o área total da paisagem (raster ramostra) em hectares e quilometros quadrados?
Vamos olhar o mapa de novo.
Figura 1.2: Mapbiomas 2020. Uma pequena amostra do Rio Araguari, perto de Porto Grande.
O mapa mostra três classes com valores de 3, 12 e 33. Lembrando, o objetivo principal não é de fazer mapas. Mas, a visualização dos dados é um passo importante para verificar e entender os padrões. Portanto, segue exemplo mostrando uma forma de visualizar o arquivo de raster como mapa.
Para entender o que os valores (3, 12, 33) representam no mundo real precisamos de uma referência (legenda). Para a MapBiomas Coleção 6, arquivo: Cod_Class_legenda_Col6_MapBiomas_BR.pdf. Existe também arquivos para fazer as mapas com cores corretas em QGIS ou ArcGIS.
Olhando a legenda (Cod_Class_legenda_Col6_MapBiomas_BR.pdf), sabemos que “3”, “12” e “33” representem cobertura de “Formação Florestal”, “Formação Campestre”, e “Rio, Lago e Oceano”. Então podemos fazer um mapa mostrando tais informações.
Daqui pra frente vamos aproveitar uma forma mais elegante de apresentar mapas e gráficos. Isso seria atraves a função “ggplot” (pacote ggplot2), que faz parte do “tidyverse”. Mais exemplos no R cookbook : http://www.cookbook-r.com/Graphs/ .
E com mais exemplos de mapas e dados espaciais no R: sf e ggplot2 : https://www.r-spatial.org/r/2018/10/25/ggplot2-sf.html
Capitulo 9 no livro Geocomputation with R : https://geocompr.robinlovelace.net/adv-map.html
Primeiramente precisamos incluir as informações relevantes da legenda. Ou seja, incluir os nomes para cada valor de classe.
# legenda e cores na sequencia correta
classe_valor <- c(3, 12, 33)
classe_legenda <- c("Formação Florestal",
"Formação Campestre", "Rio, Lago e Oceano")
classe_cores <- c("#006400", "#B8AF4F", "#0000FF") Agora podemos fazer o mapa com as classes e os cores seguindo o padrão recomendado pela MapBiomas para Coleção 6.
# Passo necessario para mostrar os valores
ramostra_df <- as.data.frame(ramostra, xy = TRUE)
ggplot(ramostra_df, aes(x=x, y=y)) +
geom_raster(aes(fill = factor(mapbiomas_2020))) +
scale_fill_manual("classe",
values = classe_cores,
labels = classe_legenda) +
coord_equal() +
geom_text(data = ramostra_df, aes(x = x, y = y,
label = mapbiomas_2020)) +
theme(legend.position="top") +
guides(fill=guide_legend(nrow=2,byrow=TRUE))
Figura 1.3: Paisagem com valores e classes de cobertura da terra. Mapbiomas 2020. Uma pequena amostra do Rio Araguari, perto de Porto Grande.
1.4 Alterando a resolução
Alterando a resolução serve como exemplo mostrando como os passos/etapas/cálculos mude dependendo o tipo de dados. Ou seja, é preciso adotar metodologias diferentes para dados categóricos (por exemplo classificação de cobertura da terra) e dados contínuos (por exemplo distância até rio).
Alterando a resolução às vezes seria necessário, por exemplo, quando preciso padronizar dados/imagens oriundos de fontes diferentes com resoluções diferentes e/ou para reduzir a complexidade da modelagem. Lembrando - em cada nível de resolução, são observáveis processos e padrões que não podem necessariamente ser inferidos daqueles abaixo ou acima.
Agora iremos degradar a resolução desses dados, ou seja, iremos alterar o tamanho dos pixels. Como exemplo, iremos juntar (agregar) 3 pixels em um único pixel. Como você acha que podemos fazer isso? Quais valores esse pixel que vai substituir os 3 originais deve ter? Existem diversas maneiras de se fazer isso, uma das formas é através da média.
ramostra_media<-aggregate(ramostra, fact=3, fun="mean")
ramostra_media <- resample(ramostra, ramostra_media)Visualizar. Os valores calculados pela função não fazem sentido para uma classificação categórica.
# Tidy
as.data.frame(ramostra_media, xy = TRUE) %>%
mutate(mapbiomas_2020 = round(mapbiomas_2020,1)) -> ramostra_media_df
# Plot
ggplot(ramostra_media_df, aes(x=x, y=y)) +
geom_raster(aes(fill = factor(mapbiomas_2020))) +
scale_fill_discrete("valor") +
coord_equal() +
geom_text(data = ramostra_media_df, aes(x = x, y = y,
label = mapbiomas_2020))
Figura 1.4: Agregação errado para dados categóricos. Uso da média cria valores categóricos errados e impossíveis.
Outra opção é utilizar o valor mais comum da área, o que é particularmente adequado quando temos um mapa categórico, como por exemplo floresta/não-floresta. Segue exemplo com o valor mais frequente (modal).
ramostra_modal<- aggregate(ramostra, fact=3, fun="modal")
ramostra_modal <- resample(ramostra, ramostra_modal, method="near")Visualizar. Os valores calculados pela função são consistentes com o original e fazem sentido.
# Tidy
ramostra_modal_df <- as.data.frame(ramostra_modal, xy = TRUE)
# Plot
ggplot(ramostra_modal_df, aes(x=x, y=y)) +
geom_raster(aes(fill = factor(mapbiomas_2020))) +
scale_fill_manual("classe", values = classe_cores) +
coord_equal() +
geom_text(data=ramostra_modal_df, aes(x=x, y=y, label=mapbiomas_2020))
Figura 1.5: Agregação pela mais frequente.
Em cada nível de resolução, são observáveis processos e padrões que não podem necessariamente ser inferidos daqueles abaixo ou acima. Aqui por exemplo, mudamos a proporção de cobertura florestal em nossa pequeno paisagem quando juntamos 3 pixels em um único: a proporção de floresta moudou de 4% (3/72) para 11% (1/9). Ou seja, com cada passo mudamos a representção do mundo.
Figura 1.6: Mudanças causadas pela agregação.
1.5 Escala espacial e desenho amostral
Dado o papel que a escala pode desempenhar em nossa compreensão dos padrões e processos ecológicos, como escala deve ser considerada no desenho do estudo? Claramente, a resposta a esta pergunta irá variar dependendo dos fenômenos de interesse, mas ecologistas e estatísticos têm forneceu algumas orientações importantes. As questões-chave incluem o tamanho da unidade de amostragem (resoloção), o tipo de unidade de amostra e localizações da unidade de amostra, incluindo o espacamento entre as amostras (distância entre as amostras) e o tamanho da área de estudo.
Com a disponibilidade de imagens de satélite é possível responder questões importantes relacionadas ao desenho do estudo antes de qualquer trabalho de campo. Uma tecnica de geoprocessamento (bordas - Buffers) é um dos mais frequentemente adotados para quantificar escala espacial na ecologia da paisagem.
O objetivo é criar buffers circulares de diferentes extensões ao redor dos sitios de amostragem (pontos, pixels, manchas, transetos lineares etc). Aqui, vamos entender a escala em que a cobertura de floresta muda ao redor dos rios. Para isso, quantificamos a quantidade de floresta que ocorre em várias distâncias em pontos ao longo dos rios a montante das hidrelétricas no Rio Araguari. Para ilustrar esta abordagem geral, usamos o banco de dados MapBiomas Coleção 6 de 2020, e vincule esses dados de cobertura da terra aos pontos de amostragem em rios.
1.5.1 Obter e carregar dados (vectores)
Precisamos carregar os dados para rios e pontos de amostragem. Baixar arquivo (vector) com os dados (formato “GPKG”, tamanho 54.9 MB). Este arquivo contém diferentes camadas vetoriais usadas para avaliar impactos de barragens hidroelétricas em tracajas ((Bárcenas-García et al. 2022)) e ariranhas ((Raffo et al. 2022)).
Mais sobre dados vetoriais. O formato aberto GeoPackage é um contêiner que permite armazenar dados SIG (feições/camadas) em um único arquivo. Por exemplo, um arquivo GeoPackage pode conter vários dados (dados vetoriais e raster) em diferentes sistemas de coordenadas. Todos esses recursos permitem que você compartilhe dados facilmente e evite a duplicação de arquivos.
Baixar o arquivo Link: https://github.com/darrennorris/gisdata/blob/master/inst/vector/rivers.gpkg . Lembrando-se de salvar o arquivo (“rivers.gpkg”) em um local conhecido no seu computador.
O formato “GPKG” e diferente de “tif” (raster), o processo de importação é, portanto, diferente. Primeira, avisar R sobre onde ficar o arquivo. O código abaixo vai abrir uma nova janela, e você deve buscar e selecionar o arquivo “rivers.GPKG”:
Agora vamos olhar o que tem no arquivo. Depois que voces rodar o codigo st_layers(meuSIG), o resultado mostra que o arquivo rivers.GPKG inclui camadas diferentes com pontos (“Point”), linhas (“Line String”) e polígonos (“Polygon”). Alem disso, a coluna “crs_name” mostrar que a sistema de coordenadas é geográfica (WGS84, (EPSG: 4326)\[https://epsg.io/4326\], e é diferente do arquivo raster:
## Driver: GPKG
## Available layers:
## layer_name geometry_type features fields crs_name
## 1 centerline Line String 52 15 WGS 84
## 2 forestloss Point 276086 12 WGS 84
## 3 canalpoly Polygon 3 6 WGS 84
## 4 extentpoly50km Polygon 1 0 WGS 84
## 5 midpoints Point 52 17 WGS 84
## 6 midpoints_hansen Point 52 37 WGS 84
## 7 cachoeira_caldeirao Point 1 2 WGS 84
## 8 porto_grande Point 1 1 WGS 84
## 9 icmbio_base Point 1 1 WGS 84
## 10 direct_affect Polygon 1 2 WGS 84
## 11 midpoints_hansen_distances Point 52 43 WGS 84
## 12 midpoints_hansen_ffr Point 52 82 WGS 84
## 13 midpoints_hansen_ffril Point 52 91 WGS 84
## 14 direct_affect_line Line String 1 2 WGS 84
Nós só precisamos de duas dessas camadas. O código abaixo vai carregar as camadas que precisamos e criar os objetos “rsm” e “rsl”. Assim, agora temos dados com: pontos cada 5 km ao longo os rios (“rsm”) e a linha central de rios (“rsl”).
## Reading layer `midpoints' from data source
## `C:\Users\user\Documents\Articles\gis_layers\gisdata\inst\vector\rivers.gpkg'
## using driver `GPKG'
## Simple feature collection with 52 features and 17 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -52.01259 ymin: 0.7175827 xmax: -51.29688 ymax: 1.330365
## Geodetic CRS: WGS 84
## Reading layer `centerline' from data source
## `C:\Users\user\Documents\Articles\gis_layers\gisdata\inst\vector\rivers.gpkg'
## using driver `GPKG'
## Simple feature collection with 52 features and 15 fields
## Geometry type: LINESTRING
## Dimension: XY
## Bounding box: xmin: -52.01443 ymin: 0.7094595 xmax: -51.2924 ymax: 1.352094
## Geodetic CRS: WGS 84
1.5.2 Visualizar os arquivos (camadas vector)
Visualizar para verificar. Mapa com linha central e pontos de rios em trechos de 5km.
Figura 1.7: Pontos ao longo dos rios a montante das hidrelétricas no Rio Araguari.
Mapa interativo (funcione somente com internet) Mostrando agora com fundo de mapas “base” (OpenStreetMap/ESRI etc)